﻿/*
 * Class  :  LibSendMail
 * Author : Chung Thành Phước 
 * Create Date: 11/11/2014
 * Update date: 11-11-2014 by Chung Thành Phước 
 * Reference: Microsoft Net.Mail
 */

using System;
using System.Net.Mail;
using System.Text;

namespace LibGlobal
{
    public class SendMail
    {
        #region[SendMail]
        /*
         * username  :  tài khoản của Gmail
         * password  :  mật khẩu của Gmail
         * port      :  Port của Gmail (mặc định là 587)
         * host      :  Host của Gmail (mặc định là smtp.gmail.com)
         * emailFrom :  Mail của người gửi
         * titileFrom:  Tiêu đề Mail
         * emailTo   :  Mail của người nhận hoặc List Mail
         * content   :  Nội dung Mail cho người nhận Mail
         * subject   :  Chủ đề Mail cho người nhận
         * msgConent :  Show thông báo khi gửi Mail thành công hoặc thất bại
         */
        public static string SendMailEvent(string username, string password, int port, string host, string emailFrom, string titileFrom, string emailTo, string content, string subject, string msgConent)
        {
            var smtpServer = new SmtpClient
            {
                Credentials = new System.Net.NetworkCredential(username, password),
                Port = port,
                Host = host,
                EnableSsl = true
            };
            var mail = new MailMessage();
            var addr = emailTo.Split(',');
            try
            {
                mail.IsBodyHtml = true;
                mail.From = new MailAddress(emailFrom,
                titileFrom, Encoding.UTF8);
                mail.Subject = subject;
                mail.Body = content;
                foreach (var muitimail in addr)
                {
                    mail.To.Add(new MailAddress(muitimail));
                }
                mail.DeliveryNotificationOptions = DeliveryNotificationOptions.OnFailure;
                smtpServer.Send(mail);

                return msgConent;
            }
            catch (Exception ex)
            {
                return msgConent + ex.Message;
            }
        }
        #endregion
    }
}